const { ipcRenderer, store } = require('electron');

$(function () {
    const ipc = require('electron').ipcRenderer

    setTimeout(() => {
        $(".float-right").css('position', 'absolute')
        $(".float-right").css('right', '1rem')
        $(".float-right2").css('right', '6rem')
    }, 500);

    $("#add_task").click(function(){
        const h = $("#split_h").val() * 1
        const m = $("#split_m").val() * 1
        const s = $("#split_s").val() * 1
        let sc = ''

        if( h < 0 || m < 0 || s < 0) {
            $("#modal_txt").html('不支持负数范围, 请重新输入！')
            $("#modal_tip").modal('show')
            return;
        }else if(m > 59 || s > 59 || h > 23) {
            $("#modal_txt").html('分和秒最大为60,小时最大为23, 请重新输入！')
            $("#modal_tip").modal('show')
            return;
        }else{
            sc = `${s == 0 ? '*' : s} ${m == 0 ? '*' : m} ${h == 0 ? '*' : h} * * *`
        }

        if(sc != ''){
            $("#split_list").append(`<option value="${sc}">${sc}</option>`)
            $("#split_h").val(0)
            $("#split_m").val(0)
            $("#split_s").val(0)
            $("#mergn_list_count").text($("#split_list option").length)
        }
    })

    $("#add_task2").click(function(){
        const sc = $("#split_manal").val()
        const arr = sc.split(' ')
        if(arr.length != 6){
            $("#modal_txt").html('输入格式不正确，应为 * * * * * * 六段格式！')
            $("#modal_tip").modal('show')
        }else if(arr[1] && arr[1] !== '*' && arr[0] == '0'){
            $("#modal_txt").html('分钟数不为*，则秒数不可为0，否则每秒均会触发！')
            $("#modal_tip").modal('show')
        }else if(arr[2] && arr[2] !== '*' && arr[1] == '0'){
            $("#modal_txt").html('小时数不为*，则分钟数不可为0，否则每分钟均会触发！')
            $("#modal_tip").modal('show')
        }else {
            ipc.send('check-cron', sc) //校验表达式语法
        }
    })

    $("#choise_clock").click(function(){
        ipc.send('choise-clock', [0])
    })

    ipc.on('choise-clock-end', function(event, arg){
        $("#modal_txt").html('闹钟文件设置完成！')
        $("#modal_tip").modal('show')
    })

    ipc.on('check-cron-end', function(event, arg){
        if( arg.v ){
            $("#split_list").append(`<option value="${arg.sc}">${arg.sc}</option>`)
            $("#mergn_list_count").text($("#split_list option").length)
        }else {
            $("#modal_txt").html('cron 表达式语法不正确！')
            $("#modal_tip").modal('show')
        }        
    })

    $("#del_task").click(function(){
        $("#split_list option:selected").remove()
        $("#mergn_list_count").text($("#split_list option").length)
    })

    $("#start_task").click(function () {
        $("#split_list").find('option').prop('selected',true);

        setTimeout(() => {
            ipc.send('start-task', [{
                tasks: $("#split_list").val(), //待处理
            }])
        }, 100);
    })

    $("#save_task").click(function(){
        const v = $("#split_list").val()
        if( !v || v.length === 0) {
            $("#split_list").find('option').prop('selected',true);
        }
        setTimeout(() => {
            ipc.send('save-task', [{
                tasks: $("#split_list").val(), //待处理
            }])
        }, 100);
    })

    ipc.on('save-task-end', function(event, args){
        if(args > 0){
            $("#modal_txt").html('定时列表保存成功！')
            $("#modal_tip").modal('show')
        }
    })

    ipc.on('load-db', function(event, args){
        if(args.length > 0){
            args.map( (value, inx)=>{
                $("#split_list").append(`<option value="${value}">${value}</option>`)
            })
        }
    })

    ipc.on('start-task-end', function (event, args) {
        if(args == '0'){
            $("#modal_txt").html('闹钟任务开始！')
            $("#modal_tip").modal('show')
            $("#start_task").attr('disabled', true)
        }else {
            $("#modal_txt").html('时间间隔设置不正确！')
            $("#modal_tip").modal('show')
        }
    })

    ipc.on('error-clock', function(event, args){
        $("#modal_txt").html(`存档的闹钟文件(${args})不可读，请重新设置！`)
        $("#modal_tip").modal('show')
    })

    ipc.on('task-trigger', function (event, args) {
        if(args && args.action === 'play'){
            let audio = new Audio()
            audio.src = args.audio || "./static/mp3/ringing_short.mp3"
            audio.play();
        }
    })

    $("#push_task").click(function () {
        ipc.send('pause-task', [0])
    })

    $("#resume_task").click(function () {
        ipc.send('resume-task', [0])
    })

    $("#destroy_task").click(function () {
        ipc.send('destroy-task', [0])
    })

    ipc.on('task-end', function (event, args) {
        if(args === '0'){
            $("#modal_txt").html('操作成功！')
            $("#modal_tip").modal('show')
            $("#start_task").attr('disabled', false)
        }else {
            $("#modal_txt").html('操作失败！')
            $("#modal_tip").modal('show')
        }
    })
})
